package jp.co.dailyReport.customer.action;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import jp.co.dailyReport.DataUnavailableException;
import jp.co.dailyReport.customer.Customer;
import jp.co.dailyReport.customer.CustomerManager;

/**
 * 取引先情報一覧ページの出力処理を管理クラスです。
 * 取引先情報登録ページ→取引先情報一覧ページ
 */
public class CustomerAddListAction extends Action{

	private static Logger log = Logger.getLogger(CustomerAddListAction.class);

	/**
	 * 取引先情報登録完了ページの「戻る」ボタンが押されて、
	 * 取引先情報一覧ページの出力処理を行います。
	 * 取引先情報を取得します。
	 * 
	 * @param mapping このインスタンスを選択するために使用したActionMapping
	 * @param form 存在するならば、このリクエストのためのActionForm Bean
	 * @param request 処理しているHTTPリクエスト
	 * @param response 処理しているHTTPレスポンス
	 * @return ActionForwardインスタンス
	 * @throws IOException, ServletException
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
		 throws IOException, ServletException {

		log.debug("CustomerAddListAction start");
		HttpSession session = request.getSession();
		session.removeAttribute("CustomerActionForm");

		CustomerActionForm staffActionForm = (CustomerActionForm)form;
		Customer customerList[] = null;

		try {
			customerList = CustomerManager.load();
		} catch(DataUnavailableException due) {
			log.error(due.getMessage());
		}

		request.setAttribute("customerList",customerList);
		log.debug("CustomerAddListAction end");
		return mapping.findForward("returnList");
	}
}
